#[view/DateBox.py]
from PySide6.QtWidgets import QVBoxLayout, QGroupBox, QDateEdit
from PySide6.QtCore import Qt, QDate, Signal

class DateBox(QVBoxLayout):
    """精简版日期选择组件（移除标签显示）"""
    date_changed = Signal(str)  # 日期变化信号
    
    def __init__(self, title="选择日期"):
        super().__init__()
        self._container = QGroupBox(title)
        self._container.setLayout(self)
        self.setAlignment(Qt.AlignmentFlag.AlignHCenter)
        
        # 日期选择器（自带日期显示）
        self.date_edit = QDateEdit()
        self.date_edit.setCalendarPopup(True)  # 启用日历弹窗
        self.date_edit.setDate(QDate.currentDate())  # 默认当天
        self.date_edit.setDisplayFormat("yyyy-MM-dd")  # 显式设置显示格式
        self.date_edit.dateChanged.connect(self._handle_date_change)
        
        # 添加到布局
        self.addWidget(self.date_edit)

    def _handle_date_change(self, date):
        """处理日期变化事件"""
        self.date_changed.emit(date.toString("yyyyMMdd")) 

    def get_date(self):
        """获取当前选择的日期（返回YYYYMMDD格式字符串）"""
        return self.date_edit.date().toString("yyyyMMdd")  # 注意格式符区分大小写

